FIG. 1A shows a client-server system 10, where a client machine or node 12 has a direct connection via a network link 14 to a server machine 16. FIG. 1B shows an alternate arrangement of a client-server system 10′ where a proxy machine 18 forms the connection with the network 14, and offers processing support for the client machine 12, passing data across a local link 20. A proxy is typically used where sophisticated scheduling algorithms are used. The client machine 12 will be running a user agent software application, such as a browser.
A known manner of downloading documents will be described with reference to FIG. 2. A client begins a downloaded process (step 30). Any client-side scripts within the document are downloaded first (step 32). Such scripts can include Javascripts as part of the HEAD node in a HTML document. This continues until the script download is complete (step 34). The document itself is then downloaded to completion (step 36). Validation of the document is then performed (step 38); for example DOCTYPE and DTD-based validation in XML. The document is then rendered to the client (step 40).
This known arrangement is less than satisfactory for users, however, in that there is excessive waiting time, leading to frustration, particularly for thin-clients (eg. mobile devices such as cellular phones and PDAs). There also is poor resource utilization, in that dead scripts can be downloaded and need to be stored in memory.